package com.ydd.JinJavaPractice.poiTL.plugin;

import com.deepoove.poi.config.Configure;
import com.deepoove.poi.config.ConfigureBuilder;

/**
 * Author: yangdongdong  <br>
 * Date: 2024/12/26 下午2:41  <br>
 * Version: 1.0  <br>
 * Description: 本类是绑定标签与插件之间的关系的代码示例类
 */


public class BindTag2Plugin
{
    public static void main(String[] args)
    {
        /*
        当我们有个模板标签为 {{report}}，默认是文本标签，如果希望在这个位置做些不一样或者更复杂的事情，我们可以将插件应用到这个模板标签：
         */
        ConfigureBuilder builder = Configure.builder();
        builder.bind("report", new CustomTableRenderPolicy());


        /*
        当开发的插件具有一定的通用能力就可以将其注册为新的标签类型。比如增加%标识：{{%var}}，对应自定义的渲染策略 HelloWorldRenderPolicy：
         */
        builder.addPlugin('%', new MyHelloWorldPlugin());
        /*
        此时，{{%var}} 将成为一种新的标签类型，它的执行函数是 MyHelloWorldPlugin。
         */
    }
}
